Зміст
Вступ………………………………………………………………….......………..4
Формулювання задачі…………………………………..…………….……………5
Алгоритм розв’язання задачі………………………………………………………6
Програмні реалізації алгоритму………………….…………………………….…8
Інструкція користувачеві програми…………………….………………………..11
Контрольні прилади та аналіз їх реалізації……………..……………………….13
Висновки…………………………………………….…………………………….14
Література……………………………………………………………………….…15
ВСТУП
Тепер комп’ютери відіграють у житті людини все більшу та більш роль. Раніше, коли ще не було комп’ютерів, чи вони були мало розповсюдженні, все робилося вручну. Коли комп’ютери одержали широке розповсюдження, комп’ютер став допомагати людині, бо він може багато операцій робити набагато швидше, ніж людина.
В цій курсовій роботі я спробував створити програму яка з могла б зацікавити користувача в роботі з комп’ютером, та допомогти йому в справах які важко запам’ятати…
На даний час більшість людей мають діже багато справ, заклопотані в повсякденному житті, тому я розробив таку програму коли відкривши свій комп’ютер людині було б цікавіше коли в неї на робочому столі змінюються шпалери, а також нагадує про справу яку вона має зробити, чи завершити.
Формулювання задачі
Дана програма повинна автоматично змінювати шпалери відносно часу, а також повідомляти про свята, дні народження родини та друзів, чи будь яких справ які ви собі запланували. Для реалізації цієї програми я використовую усі можливі оператори мови асемблер.
Метою розв’язання цієї задачі є зміна шпалер та нагадування. В результаті програмної реалізації користувач повинен отримати змінені шпалери та повідомлення про якусь справу, свято і т.п.
Алгоритм програми
Дана програма складається з двох частин в першій частині вона нагадуватиме про будь яку справу людині, а друга частина змінюватиме шпалери на робочому столі.
Щоб наша програма працювала навіть тоді коли ми включили, а потім знову включили комп’ютер спершу ми заносимо ярлик exe файлу в авто загрузку за допомогою цієї функції:
invoke CopyFile,addr file,addr newfile,1.
В першій частині програми ми робимо такі дії:
Дізнаємось теперішній час:
Щоб дізнатись теперішній час використовуємо функцію:
invoke GetSystemTime,addr time
Відкриваємо та зчитуємо файл в якому записані всі справи;
Файл знаходиться там де встановлена программа, зчитуємо його за допомогою функції:
invoke ReadFile,hFile,pMemory,MEMSIZE-1,addr SizeRead,0
Порівнюємо теперішню дату з тими датами яка є у файлі:
invoke lstrcmp,addr new1,addr new2;
Виводимо на екран справу яку ми повинні зробити сьогодні:
invoke MessageBox,0,addr new4,addr title1,MB_OK;
Закриваємо файл:
invoke CloseHandle,hFile.
В другій частині ми робимо такі дії:
Дізнаємось теперішню дату та час:
invoke GetSystemTime,addr time;
Дивимось на дату та час і міняємо картинку робочого стола на ту яка повинна бути;
Зациклюємо програму так щоб вона робила перевірку кожних 10 секунд:
invoke Sleep,10000.
Програмні реалізції алгоритму
Практичною метою нашої курсової роботи було написання мовою асемблер програми, яка б змінювала шпалери на робочому столі та нагадувала про будь-яку дату.
Функція CopyFile:
Копіює файл
BOOL CopyFile(
LPCTSTR lpExistingFileName, //вказівник на стрічку, що містить шлях + ім'я файлу, що копіюється;
LPCTSTR lpNewFileName, //вказівник на стрічку, що містить шлях + файлу-копії (нове ім’я);
BOOL bFailIfExists //якщо значення - ненульове, то в разі існування файлу-копії, функція не виконується; якщо значення - нульове - файл перезаписується. );
Результат:
В позитивному випадку результат ненульовий
Функція GetSystemTime:
заповнює структуру SYSTEMTIME значенням поточного часу за Грінвичем
VOID GetSystemTime(
LPSYSTEMTIME lpSystemTime // адреса структури системного часу (SYSTEMTIME), яка буде заповнена. );
Результат:
Функція нічого не повертає
Функція ReadFile: читає файл
BOOL ReadFile(
HANDLE hFile // хендл файлу;
LPVOID lpBuffer // блоку пам’яті в який попадуть дані;
DWORD nNumberOfBytesToRead // кіл...